* editfns.c (Fformat): Fix several integer overflow problems.
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 13 May 2011 06:12:24 +0000 (23:12 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 13 May 2011 06:12:24 +0000 (23:12 -0700)
commitd15ad5b7385ac0cc41ba62327781c250b503fce1
tree750627ad98c5254c8ae983788106096a076c795d
parentd86de3e5ad653f862fd65743f91b41b3d05b19bb
* editfns.c (Fformat): Fix several integer overflow problems.

For example, without this change, (format "%2147483648d" 1) dumps
core on x86-64 GNU/Linux.  Use EMACS_INT, not size_t, for sizes,
since we prefer using signed values, and EMACS_INT will be big
enough soon, even on 32-bit hosts.  Also, prefer EMACS_INT to int
for sizes.  Don't assume that pI is either "l" or ""; it might be
"ll" or "I64".  Check for width and precision greater than
INT_MAX, as this can make sprintf go kaflooey.  (Bug#8668)
src/ChangeLog
src/editfns.c